<?php
session_start();
class BuyController extends Controller
{
	
   
   public function actionIndex()
	{
	   $this->layout = 'shop';  
		$this->render('index');
	}
   /**
    * Order
   */
   public function actionOrders(){
      if(!isset($_POST['username'])){
         $this->redirect('/buy/cart');
      }else{
         
         // Kiểm tra cookie tránh trường hợp spam đơn hàng
         if(!isset($_COOKIE['orders'])){
            $username = Yii::app()->request->getParam('username','');
            $address = Yii::app()->request->getParam('address','');
            $phone = Yii::app()->request->getParam('phone','');
            $message = Yii::app()->request->getParam('message','');
            $date = time();
            $sql = "INSERT INTO orders(ord_name_customer,
                                       ord_add_customer,
                                       ord_phone_customer,
                                       ord_date)
                                    VALUES(:name,:add,:phone,:date)";
            $db = Yii::app()->db;
            
            $cmd = $db->createCommand($sql);
            $cmd->bindParam(":name",$username);
            $cmd->bindParam(":add",$address);
            $cmd->bindParam(":phone",$phone);
            $cmd->bindParam(":date",$date);
            $cmd->query();
            $ord_id = Yii::app()->db->lastInsertID;
            
            $carts = $_SESSION['cart'];
            $sql = "INSERT INTO order_product(ord_id_product,ord_qty_product,ord_id) VALUES";
            foreach($carts as $key=>$value){
               $sql .= "(" . $key . "," . $value . "," . $ord_id . "),";
            }
            $sql = substr($sql,0,-1);
            $cmd = $db->createCommand($sql);
            $cmd->execute();
            unset($_SESSION['carts']);
            
            //Thiết lập cookie lưu trạng thái vừa đặt hàng
            if($ord_id > 0){
               $cookie = new CHttpCookie('orders',$ord_id);
               $cookie->expire = time() + 120 ;   
               Yii::app()->request->cookies['orders'] = $cookie;
            }
            $message = "Chúng tôi đã nhận được thông tin của quý khách và sẽ liên hệ với quý khách sớm nhất có thể. Cảm ơn quý khách !";
         }else{
            $message = "Quý khách vừa đặt thành công một đơn hàng. Vui lòng chờ trong 2 phút để tiếp tục đặt hàng. Cảm ơn quý khách !";
         }
         
         $this->layout = 'shop';
         $this->render('orders',array('message' => $message));
      }
      
   }
   /**
    * Cart
   */
   public function actionCart(){
      $model = new Books();
      $orders = new Orders();
      //CVarDumper::dump($orders->attributes,10,true);die();
      if(!isset($_COOKIE['orders'])){
         if(isset($_POST['Orders'])){
            $orders->attributes = $_POST['Orders'];
            $orders->ord_date = time();
            if($orders->validate()){
               if($orders->save()){
                  $last_id = $orders->ord_id;
                  
                  $carts = $_SESSION['cart'];
                  $k = 0;
                  foreach($carts as $key=>$value){
                     $order_product = new OrderProduct();
                     $order_product->ord_id_product = $key;
                     $order_product->ord_qty_product = $value;
                     $order_product->ord_id = $last_id;
                     $order_product->save();
                  }
                  //Thiết lập cookie lưu trạng thái vừa đặt hàng
                  if($last_id > 0){
                     $cookie = new CHttpCookie('orders',$last_id);
                     $cookie->expire = time() + 120 ;   
                     Yii::app()->request->cookies['orders'] = $cookie;
                  }
                  Yii::app()->user->setFlash('success','Chúng tôi đã nhận được thông tin của quý khách và sẽ liên hệ với quý khách sớm nhất có thể. Cảm ơn quý khách !');
               }
            }
         }
      }else{
         Yii::app()->user->setFlash('error','Quý khách vừa đặt thành công một đơn hàng. Vui lòng chờ trong 2 phút để tiếp tục đặt hàng. Cảm ơn quý khách !');
      }
      //CVarDumper::dump($orders->attributes,10,true);die();
      $this->render('cart',array(
         'model' => $model,
         'orders' => $orders,
      ));
   }
   
   private $cart = array();
   
   /**
    * Add product to cart
   */
   public function actionAddToCart(){
      $id = Yii::app()->request->getParam('id',0);
      if(isset($_SESSION['cart'][$id])){
         $qty = $_SESSION['cart'][$id] + 1;
      }else{
         $qty = 1;
      }
      $_SESSION['cart'][$id] = $qty;
      $this->cart = $_SESSION['cart'];
   }
   
   /**
    * Delete product from cart
   */
   public function actionDeleteCart(){
      $id = Yii::app()->request->getParam('id',0);
      if(isset($_SESSION['cart'][$id])){
         unset($_SESSION['cart'][$id]);
      }
      if($id == 'all'){
         unset($_SESSION['cart']);
      }
   }
   
   /**
    * Update cart
   */
   public function actionUpdateCart(){
      $id = Yii::app()->request->getParam('id',0);
      $qty = Yii::app()->request->getParam('qty',0);
      $qty = intval($qty);
      if(isset($_SESSION['cart'][$id])){
         $_SESSION['cart'][$id] = $qty;
      }
   }
	// Uncomment the following methods and override them if needed
	/*
	public function filters()
	{
		// return the filter configuration for this controller, e.g.:
		return array(
			'inlineFilterName',
			array(
				'class'=>'path.to.FilterClass',
				'propertyName'=>'propertyValue',
			),
		);
	}

	public function actions()
	{
		// return external action classes, e.g.:
		return array(
			'action1'=>'path.to.ActionClass',
			'action2'=>array(
				'class'=>'path.to.AnotherActionClass',
				'propertyName'=>'propertyValue',
			),
		);
	}
	*/
}